package com.gxc.array;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 给定一个正整数数组，设为nums，最大为100个成员，求从第一个成员开始，正好走到数组最后一个成员，所使用的最少步骤数。
 *
 * 要求：
 *
 * 第一步必须从第一元素开始，且1<=第一步的步长<len/2;（len为数组的长度，需要自行解析）。
 * 从第二步开始，只能以所在成员的数字走相应的步数，不能多也不能少, 如果目标不可达返回**-1**，只输出最少的步骤数量。
 * 只能向数组的尾部走，不能往回走。
 * 输入描述
 * 由正整数组成的数组，以空格分隔，数组长度小于100，请自行解析数据数量。
 *
 * 输出描述
 * 正整数，表示最少的步数，如果不存在输出**-1**
 */
public class MinStep {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int[] array = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        scanner.close();
        int n = array.length;
        int min = Integer.MAX_VALUE;
        for (int i = 1; i < n/2; i++) {
            int cur = i;
            int step = 1;
            while (cur < n-1) {
                cur += array[cur];
                step++;
            }
            if (cur == n-1) {
                min = Math.min(min, step);
            }
        }
        if (min == Integer.MAX_VALUE) {
            System.out.println(-1);
        } else {
            System.out.println(min);
        }
    }
}
